#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//void Func1(int N)
//{
//	int count = 0;
//	for (int i = 0; i < N; ++i)
//	{
//		for (int j = 0; j < 2 * N; ++j)
//		{
//			++count;
//		}
//	}
//
//	for (int k = 0; k < 2 * N; ++k)
//	{
//		++count;
//	}
//	int M = 10;
//	while (M--)
//	{
//		++count;
//	}
//
//	printf("%d\n", count);
//}
//
//int main()
//{
//	Func1(5);
//
//	return 0;
//}


//int BinarySearch(int* a, int n, int x)
//{
//	assert(a);
//	int begin = 0;
//	int end = n - 1;
//	while (begin < end)
//	{
//		int mid = begin + ((end - begin) >> 1);
//		if (a[mid] < x)
//			begin = mid + 1;
//		else if (a[mid] > x)
//			end = mid;
//		else
//			return mid;
//	}
//	return -1;
//}


//long long Fac(size_t N)
//{
//	if (0 == N)
//		return 1;
//
//	return Fac(N - 1) * N;
//}

//long long Fib(size_t N)
//{
//	if (N < 3)
//		return 1;
//
//	return Fib(N - 1) + Fib(N - 2);
//}

//long long Fac(size_t N)
//{
//	if (N == 0)
//		return 1;
//
//	return Fac(N - 1) * N;
//}


void reverse(int* a, int left, int right)
{
	while (left < right)
	{
		int t = a[left];
		a[left] = a[right];
		a[right] = t;

		left++;
		right--;
	}
}

int main()
{
	int num[] = { 1,2,3,4,5,6,7,8,9 };
	int size = sizeof(num) / sizeof(num[0]);
	int buffer = 0;
	scanf("%d", &buffer);

	if (buffer > size)
	{
		buffer %= size;
	}

	reverse(num, 0, size - buffer - 1);
	reverse(num, size - buffer, size - 1);
	reverse(num, 0, size - 1);

	for (int i = 0; i < size; i++)
	{
		printf("%d ", num[i]);
	}

}
